import { defineConfig } from "vite";
import uni from "@dcloudio/vite-plugin-uni";
import { fileURLToPath, URL } from 'node:url'

// vue3等插件 hooks 自动引入 unplugin-auto-import/vite
import VueAutoImport from 'unplugin-auto-import/vite'

// 用于UI组件库组件和自定义组件的自动引入
// import MyComponents from 'unplugin-vue-components/vite'

// https://vitejs.dev/config/
export default defineConfig({
	envPrefix: "HY_",   //为自定义开头名
	plugins: [
		uni(),
		VueAutoImport({
			// 引入的文件类型
			include: [
				/\.[tj]sx?$/, // .ts, .tsx, .js, .jsx
				/\.vue$/, /\.vue\?vue/, // .vue
			],
			// 全局导入注册
			imports: [
				// 预设引入npm包
				'vue',
				'uni-app',
				// 'pinia',
				// 'vue-router', 
				// 'vue-i18n', 
				// '@vueuse/head', 
				// '@vueuse/core'
				// 自定义引入
				// {
				//   '@vueuse/core': [
				//     // 预设名引入
				//     'useMouse', // import { useMouse } from '@vueuse/core',
				//     // 使用别名引入
				//     ['useFetch', 'useMyFetch'], // import { useFetch as useMyFetch } from '@vueuse/core',
				//   ],
				//   'axios': [
				//     // 默认引入
				//     ['default', 'axios'], // import { default as axios } from 'axios',
				//   ],
				// // '[包名]': [
				// //   '[引入变量名]',
				// //   // 使用别名引入
				// //   ['[需引入的别名]', '[需要的别名]'],
				// // ],
				// }
			],
			// 可以选择auto-import.d.ts生成的位置，使用ts建议设置为'src/auto-import.d.ts'
			// dts是帮我们生成的类型声明文件，直接使用会找不到
			dts: 'src/auto-import.d.ts',
			// 自动引入会引起 eslint 检查报错，添加这个选项来避免。
			// 它会生成相应的.eslintrc-auto-import.json文件。
			eslintrc: {
				enabled: false, // Default `false`
				filepath: './.eslintrc-auto-import.json', // Default `./.eslintrc-auto-import.json`
				globalsPropValue: true, // Default `true`, (true | false | 'readonly' | 'readable' | 'writable' | 'writeable')
			},
		}),
		// MyComponents({
		//   resolvers: [],
		//   types: [],
		//   extensions: ['vue'],
		//   //  dts: 'src/components.d.ts',
		//   // dirs: ['src/components'],
		//   // hy引入
		//   dts: 'src/types_local/hy.d.ts',
		//   dirs: ['src/components'],
		//   // uni_modules引入
		//   // dts: 'src/types_local/uni_modules.d.ts',
		//   // dirs: ['src/uni_modules'],
		// })
	],
	build: {
		// 开发阶段启用源码映射：https://uniapp.dcloud.net.cn/tutorial/migration-to-vue3.html#需主动开启-sourcemap
		sourcemap: process.env.NODE_ENV === 'development',
		// minify: 'terser',
		// // 发布时删除 console
		// terserOptions: {
		//   compress: {
		//     drop_console: true,
		//   },
		// },
	},
	resolve: {
		alias: {
			'@': fileURLToPath(new URL('./src', import.meta.url))
		}
	},
	server: {
		host: '0.0.0.0',
		port: 8088,//启动端口
		proxy: {
			'/api': {
				target: 'http://192.168.10.151:8080',
				changeOrigin: true,
				//类比与webpack里面的pathRewrite
				rewrite: (path) => path.replace(/^\/api/, "")
			},
			'/formalapi': {
				target: 'https://hongcai365.com',
				changeOrigin: true,
				//类比与webpack里面的pathRewrite
				rewrite: (path) => path.replace(/^\/formalapi/, "")
			}
		},
	},
});
